Machine process for positioning interconnected components to minimize interconnecting line length

ABSTRACT

A machine process is disclosed in which components of an interconnected network are simultaneously repositioned and their interconnections simultaneously reordered to minimize interconnecting line length. The repositioning and reordering process is performed first on nets having two components, then on nets having three components, etc., until all nets have been processed. The components are repositioned in accordance with a formula which allows large movement of interconnected components towards each other but prevents overshoot of such components. In this way, the components can be rapidly rearranged to achieve an efficient interconnecting pattern.

United States Patent Scanlon Aug. 1,1972

[54] MACHINE PROCESS FOR POSITIONING INTERCONNECTED COMPONENTS TO MINIMIZE INTERCONNECTING LINE LENGTH [72] Inventor: F. Taylor Scanlon, Phoenix, Ariz.

[73] Assignee: Honeywell Information Systems Inc.,

Waltham, Mass.

[22] Filed: 'Dec. 2, 1970 [21] Appl. No.: 94,464

52 -U.S.Cl ..444/1,235/151.1 51 Int. c1. ..G06f 15/46 58 FieldofSearch ..235/150, 150.1,151,151.1;

[5 6] References Cited OTHER PUBLICATIONS Fisk- Accel: Automatic Circuit Card Etching Layout, Proc. of IEEE, Nov. 1967, pages 1,971- 1,982.

Rutman- An Algorithm for Placement of lnterconnected Elements Based on Minimum Wire Length,

[ com/6e56- mace/MM AFIPS Conference Proceedings: Vol. 25, 1964, succ-pgs. 477- 491.

Loberman et al., Formal Procedures for Connecting Terminals with a Minimum Total Wire Length Journal of the ACM, Vol. 4; pages 428- 437, Oct. 1957.

Primary Examiner-Joseph F. Ruggiero Attorney-Fred Jacob and Edward W. Hughes [57] ABSTRACT 20 Claims, 46 Drawing Figures 0B OUTPUT D/D 7054i LIA/E LEA 67H PA'TENTEDMJB 1 m2 3.681; 782

c MAINZ PATENTEDAN: 11912 3.681.782

SHEET 13 HF 41 scANLoN OVERLAY 2 MAIN NTR L suaRnunNE NuNz Hi5 HA coMNoN LENQU .NzTsuoumiu .NETHHTHDDO NUNNE'rmosl TN 2.so0 I SITEIZJOD ANSITEHSOO a ITABLEISOO) .LBAncsoo a .NFREE. NFIXA NRlxcx,Nrxxcv.ToTAL,sREAT,rRAc.FRAc1. F'RAC2,'5TOPA, sTom, STOPZ: XCENTI YCENT; XAVEI YAVE; LOO 1pI-OO Z RADIUS, NRUNS' N581!)- INCRMXANRORD, IxTRA.ARM.RMIN.AscALE','BscALE, um. IRGZ, IRES. I G 'MSCALEIN RNTI TOTALLRPRAM c ms, 115R, LORDL! A l o AV I X' NXI P I NNY) vsc'rommuona .XPLT TMM .xNuS uoM YPus'ruuo YNus'muo muvscumsoo nxumsxcsoonoo .v 2.4 o NKONEXI OOT INPOSITISOOI CONNQN/TI LE/ N'I'ITLE ALISTNTALISTPNILISTCWLISTPTIMDDEU) coNNoN/HTLE/ NDAYA TIME cOMMnN/sTATE/ R cES m NOWPRO. ITSAVEI N OD COMMON ISCN/ MMODL|NMODF',MPEFI117 .NcNET(21 COMMON ISCNI T EF. IcNET. TTR

coNMoN ISCN/ INERRA IERR, IOERH qoNNoN lscN MCCNTI14 MAxNET, M1 NNET GOHMON/BOARD/BDESIR 2 .SDES1R 2 MDIMENXIUIMENYAPITCHY CO MON IO MSWUAMSHTEMSNTEAMSWT4AMSWTSAMSHTMMSHTYAMSHTB coMMoN /0PT/ NSN'rmNSNHmNSNTn.Nswnz DIMENSION MODESIS) nATA RcNvRe/eNctJ v s/. BLW/waLoNuP/ DATA FIXONMHGRDFIX/ DATA MODES/6H STAR I6HSERIALI6HSHRTSTI nATA JREPEL.NoR P /wRsRLsE.ANNQR P .KINTTMNTNITAL/ a THIS SUBROUTINE IS THE MAIN PROGRAM CONTROLLING HE L'ACEHENT ROCESS. AND THE ASSOCIATED SUB OUTINES. 0

0 INPUT DATA HAS PREPARED IN OVERLAY1 AND IS READ IN FROM THO scRATcN TAPES Tms PROGRAM INITIALIZES AND DIRECTS HE PROCESS OF OVERLAY z. v I

0 DESCRIPTION OF COMMON BLOCK VARIABLES O O .O i I O O O t O i 8 Q O C Q U C Q t O LETIZi I '1 L NE!126 CHARACTE S F R LOCATION PLOT ROUTINE ETSHOU H-U "H LDS U 1'0 1000 LOGIC NETS HITH UP TO 10 PINS/NET NEIIJuI-I NUHBER O" PINS I ET J NETH T- "W I HT (REPEAT APPEARAN E) OF RESPECTIV NET NUHNET -N MBER 0F LOGIC NET DE CRIBED IN RRAY NETS.

O I NI EAISOU I -CUR ENT COORDINATES OF 300 ODULES, X QAY Z.

SI TE (2. 300) -ARRAY TO SAVE ORIG {N51, 905 I TIONS NSITE -PU I TERS T0 'SITE' 0F O DER ON CODRDINATE 'KORD ITABLEISOB) TALPHA-NUMERIC NAMES or EACH MODULE LBARHQQOI -FL.A =1 FOR IXED POINT '2 OR x-aAm- -3 FOR v-aAR NFREE -POINTER To us! og 1N PosnN NITH UNRESTRICTED Y NFIX -POINTER TD LAST Loo IN POSITN NITH FIXED, COORDINATE NFIXCX POINTER To LAsT og N POSITN WITH r1x.x. FREE Y NF'IXCY- -Po1NTER To LAST 1.0 N POSH'N NITHVFIXH, FREE x ToTAL, -CURRENT TQTAL MANHATTAN LINE LENGTH 1N INCHES GREAT .GREATEsT INDIVIDUAL CONTRIBUTION 'I'Q LINE LENGTH FRAC; 'F'RACTIONAL UL'I'IPL IER 0 ECTOR F05 SMALL STEP 8 {1E FRACMF'RACQ -I PUT VALUES THAT MAY BE AS IGNED 1'0 FRAc A non uRReNT VALUE or STOPPING c 1 ER1A 8T 1 0R sTopn ST i -RELATIVE CHANGE IN ToTAL I'D HALT cpNvERsE sToPz -SAME STOPPING cRzTe roR BLOHUP As sToP1 AND MINIMUM SEPARA IQN FAcTQR U ED IN 'cALS xcENT,vcsNT -CO0R0 !NATES or CENTER OF MAss or ALL POINTS lAvEnrAvE -AVERAGE DISTANCE or M DULES F OM XQENT',,YCENT LOOPS. n -MAx!N u NUMBER or ITERATIDNS FOR CQNVERGE LOOP: -MAx!MuN NUMBER or I'I'ERATIONS FOR BLOHUR PROCESS RADIUS--- -AvER eE PHYSICAL uTANETE HAT sEPARATe MODULES NRuNs -NUMBER or REPEATS (SANS INPUT) or ENTIRE PROCESS Nss -nuNMY SENSE SWITCHES UNDER PROGRAM CONTROL O C O O Q I O U U C 8 O U O O Q Q C I O Q O O Q C O TATENTEOTTT: 1 O2 3.681.782 SHEET 1-1OOT 2 1' NSSISI- -OON ROL OX SS OIA I E REPUL ION. O- O E, I'RE EL NSS(4)- -CUR ENT HIRING RULE a 1-STAR;Z'SERIALJ-SHORTEST -ssm- O T OLS L ATION L T| O- PsEu O'; 1-R AL INCRMX- MAXIMUM N MBER OF CON ECU I E LENGTH INCREASES BEF RE WARNING ESSAGE. :TEPAT ONs TERMINATE IF NUMBER OF CONSECUTIVE INCREASES EXOEEDS 20 PER OENT OF LOOP FACTOR NRORD ,-xTE AT1ONs BETWEEN NET REOROE ING (DISCONTINUED) zxTRA -MOD LE IO HAVI (A M) MAXIMUM VEOTOR RG1- -HAXIMUM VECTOR REPO T D BY MOVE ROUTINE IN OONW R on :pHYSIcAL OVERLAP FOR B ON DURING BLONUP RMIN- -MINIMUM PHYSICAL DISTANCE BET EEN THO MODULES ASCALE.8SCALE -SCALE FACTORS FOR GRAPH PLOT OUTINE ms no UNTIL ALL NETS ARE IN CURRENT CQMPUHTIONITHEN i IRG2- -ITE AT1ONs BETWEEN LOOATION PLOTS was -ITERATIONS OETNEEN- FUNCTION PLOTS 1RO4- *ONLY NE S NI TH LESS TNAN IRG4 PINS USED IN PROCESS MSCALEH MAX MUM OROINA'TE POP GRAPH PLOTS NPPNT no FOR NO PRINT OUT DURING ITERATIONS, :1 FOR TOUTPT 701A. -[N1TIAL TOTAL LINE LENGTH (AT STAR? OF EACH RUN) RPRADI' 'RADIUS OF DISASSOCIATIVE PHYSICAL REPULSION NOHANO- -TOTAL N MBER NETS REORDERED I PREVIOUS ITEPATTONS ITERAL- RUNNING SUM OF TOTAL ITERATIONS IN THIS RUN LORQAL- RUNNING SUM OF TOT L NET R ORT ERS iN TuIS RUN RADIY -NOT IN USE NAVER -NUMBER F PAST VALUES USED IN SMOO'IHING TOTAL A E G NPX,NNX,NPY,NNYOVECTOR COU T 0F OSITIVE AND NEGATIVE ENSE-CALS T VECTORIZOSDOI .T A SFE S X AND Y COM O ENTS F FORCE O PD IITN XPLIST. YPLIS I -LIS S USED BY CALC-SORT T0 SORT L RGES POSITI E XNLIST. YNLIS I-VEC O S HITH L GEST E ATIVE VECTORS,

PHYSCLIZJOO I- P YSICAL VECTORS COMPUTED IN "LOH 1ND SOUNDS KONEXNOOAOOI-FOR EACH MODULE, UP TO 100 CONNECTIONS TO IT H2. 400).- "ARRAY FOR GRAPH PLOT A A. '2 FUNCTIONS. 400 POINTS NKONEXIOOOI -NUMBER OF MODULES CONNECTING TO THIS TOP To 00) NPOSTT- -P01NTERS BY SOBSORI T TO ORDER KORD IN 'POSITN" qolmiimu*QQQMOONOIMOMMQQOQDQUMHHHI'QQOQQOHHQkinmagliipldwoiolQlQhi G SEE RO TINE 'ASSIGNT FOR DESCRIPTION OF SHARED. COMMON IN A SIGN PA T 0 DE C IPTION OF LABLED COMMON /TI TLE/ O O O O O O O U NTITLE 4 M PROBLEM TITLE PICKED UP FROM FILE 50 IN INPOSI LISTNT- woumsa FOR OUTPUT or NETS OATA DMNEI'S T LISTPN- COUNTER FOR OuTPuT OF PDSIT I ONs DMPDSI L ISTCH- -COUNTER FOR OMPTH,OuTPuT or MODULE INTERCONNECTIONT LISTPT- -COUNTER FOR LOCATION PL TS w PLOT THREE MODES OF HIRE INTEROONNECTIONING APE IJEFINED BY NORO NONNOO' I MODEUI -STA CONNECTIONS PROM I GLE SOU OE MODET2T SERIAL CONNECTION PROM SINGLE SOURCE MOOEm -SHORTEST DISTANCE, NO SOURCE DESIGNATION NDAYINTIME- -DATE AND TIME REPORTED BY MME GET I ME 0 DESCRIPTION OF LABLEO COMMON ,STATE/ Q O O I loolnwnuuauOanwauonubnwOnu0aannualannunnngnmuaanuonuuu. DE C IPTION OF LABLED CO MON ISCN/ F OM OVERLA I. o WORDS OF INTEREST TO PLACEMENT PROGRAM (OVERLAYZI PROCES I 3) -T R E PROCESSES DEFINED BY O PRO' AREO' I O VERfn (2 I BLOHUP: 3 I G I DFIX NOHPRO DEFINES CURRENT PROCE SH O VRGA Z BLO U IS'ASSI N ITSAVE- CUR ENT ITE ATIQN NI T I CU RENT PROC S NO MOD- -DEFINES CURRENT HIRING RULEI 1-STAR| Z-SERL, 3--SI-IOR MOCN'HJI NO OI ETS HAV ING N PINS PER NET MAXNET- MAXIMUM PINS PER NET FO LL ETS MINNET- *2 PER CENT OF NUMNET {USED IN PROGRESSIVE NETI DESCRIPTION OF LABLED COMMON momn BDESIRIZI *MAXIMUM BORDER DESI ED IN 1-X AXIS AND 2-Y AXIS SDESI R I Z) -S ALLEST (M I N) BORDER DESIRED IN 11X AND Z-Y AXIS HEY- 9B PATENTEDMIB H912 3.681.782 SHEET :15 0F 41' A DIHENX- -AvE Aos x DI ENSION or AJO I Y or MDDuLEs 0 OIMENW -AvERAGE Y DIMENSION 0F MAJORITY I or MODULES O PITcHY- -DIMENY DI ENx RATID HEIGHT O NIDTH nonadDinuoailonuaoaonuuonwu00unnuobouonuoq-Auuno oumunuuanuunA U OE C I HO OF LABLEO COMMON IOPT/ FROM OVERLAY1 0 WORDS OF INTEREST TO OVERLAY2 ARE! 0 MsuTa -INPRNT Is PRINT OPTION 1 FOR HERAHON ouTPuT a MSHTS -!NS$H)IH!RING ULEAh-S ARIZ-SERIAQJ-SHORYES o MswTA -DssIgNATEs DRIDIN cooRDIN TE roe A sxsN BATCHINS T I-MINY. E-MINXI 3-MAXYA 4-MAx-x. magmas: or ASS Qanunnuu-uoonuaunnuAnnual-0&0;flnnanunmoinulnuoo uaTuwnunwnou INITIALIIE COMMON 0 D WITH HOOE DESCRIPTIONS F OM QATA" o o YHREE PROCE55E5 DEFINED CONVERGIBLOHUMAND GRDFIX INH'HLIZE PROCESS NITH DATA News PROCESIHIRCNVRG PRIJcEsmsRBLD PROCES mIIFIxD MODEIIHMDDESH) MDDE zIIMDDEsIm MDDEISIMMDDESI I l o INITIALIzE ALL OUTPUT LISTING COUNTER LISTNTID LISTPN'O LIsTcH-o LISTPTIO I IIOIOOOQQI IQIOQ'QiOGOQ I-Qi .ONIQNQ.G...QQICOIOODQOOQllOt QIII'DQQO'I 0 INPUT POSITION AND NETS DATA AND P OGRAM PARAMETERS 0 D 0 an TIME ND DATE ruR OUTPUT SUMMA Y cALL ITIMEINDAYITIMEI o ENTER INITIAL PLADEMENLBDARD sIzE AND TITLE F O FILE 2 cALL NPosI I ENTER INITIAL NETS DATA rnoM FILE 21 can INNETs o ENTER PLACEMENT PARAMETERS F OM cARD TILE 05 CALL PARMIN O Q..i'...0.0.Q.0"."O"Q".. ..'.Q...iG..Q.I.I'.QI.l" I'UQOQO'Q".

I SAVE O IGINAL SI TE 1N A RAY $1 TE 0 O SAVE SORTED ORDER OF SUBSCRIPTS ON SITE IN A RAY NS I TE 0 SORT ORDER DESIGNATED BY MSW! 1 o l (1 MINYI (ZHHNX, (IS)HAXY I )MAXY ODOOQODfiQDQQIIO QlQlQIQQODIQOOOQIQflfiUQDi-Oi.OOiQI-Obl'lhi.6&0.Ibhtlfilil...

Do 2 MDD-1.NF'IxcT V SITEHAMOD)IPOSITNIMMOD) 2 SITE!ZIMODMPOSIINKZIMODI KORDI1 I XNHSH'H .=ED.1 OR. MSHH Emuxorw-z ILL ARRAY INPDSI T' I H SUBSCRI PTS or P051 TNs IN ORDER MIN TD AX 'cALL LNGsRT (KORD I TRANSFER ORDERED suesc IPTs To NsITEs ACCORDING To MS T IFIMsuTA.LE.2I 6 D 7 TD HERE Ir ORDER 0N KD D IS MAX T0 MIN NPINFREEQI no a Mo ImNrRE NFlNP-i TD '7' Ir ORDER 0N KORD Is MIN To MAM Do 9 MOD-MNF'REE NSXTEIMOOHNPOSIHMOM PATENTEDAus H972 A 3.681.782 sum .16 HF 41 11 CONTlNUE 0 .QQGQQD.I'......I....II.QQQG ..OOi...l'ifiii.l|lD'DIQUQQDO." D A COMPUTE INHIAL semen or MASS CALL CENTER se'r RADIUS or REPULSIDN auLsRn-Rmus O SAVE ORIGINAL. REQUEST run NET ORDERING NSAVEA-Nssm A N585 ggugL EH 0 FO LOCATION PLOT or PBEUDQ L008. .1 fan REAL LOC PLOT I STOPA xs cunnem TERMINATOR run ITERATIONS STOPAiSTOPi NRINRUNS O nun MAXIMUM uunaen or PINS PER NET run Au. NETS Mung-no no 40 M140 lFmccNummm AxNEn-N 4o CONTINUE O MINNET 1s a Pen cam or TOTAL NUMBER or NETS ran rnosazssrve NET ADD HXNNETINUMNETAIZMOO l COQQQOQQOOOQIOGiQODOOQIAIQQOQGIIMQOOOQGQQQIUQOi...QIOQQGOGOQQGOOOQQQ.

0 START PLACEMENT PROCESS 0 3 PARTS O CONVRG Q BLQHUP Q AQS IGN 0 Q g 5 a NET CONNECTION MODE CONTROLLED BY N554 o 0 HYSICAL E UL ION HITH UNRELATED E!G BUR ON I? NS 3 1 0 0 ROCESS INCLUDES O LY NETS WITH LESS THAN IRG4 PINS PER NET Q 'IRGMMAXNE'I' NO PROI1 NOHMOD KINIT 0 PRINT EADING FDR CURRENT RUN CAL-L SUHMRY HRITEgiS-ZOO) 1 00 FO MATHIH CO VERG M1EQ3XA7H| 0) 0 INITIALIZE SUN COU TERS FOR TOTAL ITERATIO S A D TOTAL REO DERS ITERALIO LORDAL'O v lF'g .31. GO 1-0 5 IIIE- o SUNM MZ gNlT AL PLACEMENT Nssm-o NOHMODINDREPL CALL wRAP o SAVE INITIAL VALUES OF TOTAL AND G EAT A IMU I E LENGTH) snnmenan TOTA I TA o AU OMATIHLN SET SCALE rAcToRs FOR 'GRAPH LOTS A'MnFLoA'HMscA H A AscALs-An/wuu ascALE-An/amw O lOI.Q0'00}til)OOlOlilOQQOUIIOOQQOQDQIOQOOOODOOOI'OOOQIlO'OlOGOIIOIO o INITXALIIE M005 CONTROLS roflu A 0 sun ma! RULE FOR xNz'rm coNomoNm RUN 1 LY o no RBPULSIVE FORCES PATENTEDAun H972 3.6814782,

SHEET .17 [1F 4i "8850': 0 ALL H HAL H AXI U DESIRED ITERATIONS 0 SINCE LENGTH INCREASE 1S EXPECTED. INC EASE LI I S 0N ALLOHED INCREA E NTEMP-LOOPJ. LOOHIILOOPMZ CAL CONVRG ($10! 10 CO IN E LOOHINTEHP I O.QOQQIQQQOQIOOI9.000.Ii...I000...0006.....0..000OOOU;OOQIQIOQOOOOQOQ o OONVERG HII'H S A RDE IN I N554) AND E ULSIVE F'oRcEI (N583) N SISIEI. NUHHOD JREPEL NTEMPIINCRHX INCRMXIQ'INCRHX CALL CONVRM550, 5O CO TIN E INCRMXINTEHP l :qoooaoonfoonoonnnnoonmionnuuu000.0001000000r0000.o0.o|0uoanuo0o0.| 0 OONPLETE NI TH E I L M DE NE CEO ENCING I 0 START PROGRESSIVE NET ADDITION BY INCLUDING ONLY NETS OF -,LT. 3 I S 0 I w 0 TO THI POIN' DI ECTLY ON ALL UN FOLLO I G RUN 1. 0

o as CO TIN E NSSHIINSAVH IRS? CALL CONVRGNSO) 3o CONTINUE CALL I INE (NOAH TI E) CALL PLOT .IQIOQ...0O...i.OIll0.O...DO".bi'lfiOIIIDIOQU'iODOOQOOQOiI Uil.0..i INCL DE PHYSICAL CONSTRAIN 0 v BLOHUP PROCESS o"an... unnnnnunnunou"u'nnnuuuunuunnnu-nun 0 NO P O Z HRITEnMioU 201 FORMATHIH 0 BLO U h12I X|7 I I am. BLOHUP (S 555' CONTINUE CALL ITIMEINDAYJI EI CALL PLOT o "nun..."ouupno".uuuuonnuuuuonuuudunuuuuuu 0 USE HUNKRE S ASSIGNMEN ALOORI THM O INTEGERIZE F INAL SOLU ION 0 000Quantummuoilnnuunuioioooouooumnwinwu0aluminuml-ioooouomnunl INSSNIID I N CALL ASSION CALL ITIMEINOAYJIME) 0 I I inoIno.000000000nununounuo000000..aubonbnuoooooouobnnonuuponmUOn 0 SUHMARIZE SOLUTION FOR THIS RUN HITH APPRO RIATE OUTPUT O .QIQOIOOQII'II'QOOIIDiGilli...O.QI'QI...l"I...li'QQIOOQIIOOOO...I.O

CALL NRA! PRONTLQITOTAL-TOTALI. )lTOTALldOO. HRITEHJJOZ) O FO MAT!!! QORISFIX 12( 7H. I unx'mmzbam PA|PULIROJOACI 1R0, ITER L'LORDAL 2 G TINJIEAT.T HL1JOTALJ c L an: ronnnuxnou ove uu. summv nnizn -Jmsdumn.zmsn- 2 IL I JHHH" 2) 1HO/1X0130 I 1H0) I PMENTEDM" 1 m2 3.681.782

SHEET :18 0F 41 END THIS RUN -REPEAT(IF DESIRED) USES THIS SOLUTION FOR INITIAL INPUT* DO NOT REPEAT IF LAST Two RUNS DID NOT DIFFER IN MAX AND TOTAL LENGTH *v'n'n'n':7::cv'nrvhh'rv':*vh'rwh'n'nh':*wn'rvc*wi-vnn'nrv'cvh'nk'vhkv'cvrv'nhn'nkvn':vn'nnkv'cv'cv'rv':*kv'nk*v'nh'nnh'nhkvh'zkvhk' a? DGRT=ABS(GRTIN-GREAT) /GRTIN IF(ABS(PRCNTL) ,LET, 10 ,AND, DGRT,LE,0,01) GOTO 4999 100 CONTINUE 4999 CONTINUE RETURN END 85 WORDS OF MEMORY USED BY THIS COMPILATION 

1. A machine process for positioning interconnected modules on a planar field defined by a Cartesian coordinate system having X and Y axes by use of a programmed digital computer having stored in its internal memory a program enabling the computer to perform the following steps: a. randomly assigning modules to locations on the field, b. calculating an attraction vector for each module of every pair of interconnected modules, said vector being directed from the module in question toward the module to which it is connected and having a magnitude proportional to (i) the distance separating the two modules, and (ii) the number of lines connecting the two modules, c. calculating the X- and Y-components of each attraction vector, d. deleting from each module, pairs of oppositely directed vector components, beginning with the pair having the greatest magnitude in their respective directions and continuing with the pair having the next greatest magnitude, etc. until all such pairs have been deleted, e. calculating a repulsion vector for each module of every pair of unconnected modules, said repulsion vector being directed from the module in question in a direction opposite that in which the other module of the pair lies and having a magnitude inversely proportional to the distance separating the two modules, f. calculating for each module a resultant vector from the module''s attraction vectors and repuslion vectors, and g. simultaneously repositioning said modules by moving each in the direction of its resultant vector by an amount proportional to the magnitude of its resultant vector.
 2. A process as in claim 1 wherein the magnitude of said attraction vector equals with negative values being set equal to zero.
 3. A process as in claim 2 wherein each of said modules is moved by an amount equal to
 4. A process as in claim 3 wherein the sequence of steps in said process are iterated not more than a predetermined number of times m.
 5. A process as in claim 4 wherein the steps of said process are performed first on nets having two pins, then on nets having three pins, etc., until all nets have been processed.
 6. A process as in claim 5 further comprising the steps of h. calculating the total line length of the interconnection of the modules, i. terminating the process if the average total line length for the past z iterations is within e percentage of the total line length obtained for the most recent iteration, where z and e are predetermined values, j. generating an error indication if the average total line length for the past z iterations is not within e percentage of the total line length obtained for the most recent iteration and either (1) the average total line length for the past z iterations is less than the total line length obtained for the most recent iteration, or (2) the number of iterations completed equals m, and k. repeating steps (b) through (j) if the average total line length for the past z iterations is not within e percentage of and is not less than the total line length obtained for the most recent iteration and if the number of iterations completed is less than m.
 7. A process as in claim 6 further including the steps of l. calculating an attraction vector in accordance with step (b) for each module of every pair of modules whose centers are separated by a distance of more than one-half the sum of the widths of the pair, m. calculating an overlap vector for each module of every pair of modules whose centers are separated by a distance of less than one-half the sum of the widths of the pair, said overlap vector being directed from the module in question in a direction opposite that in which the other module of the pair lies and having a magnitude inversely proportional to the distance separating the pair, n. calculating for each module a resultant vector from the module''s attraction vectors and overlap vectors, o. performing step (g).
 8. A process as in claim 7 wherein the magnitude of said overlap vector equals
 9. A process as in claim 8 further comprising the steps of p. calculating a field boundary vector for each module whose center point is within a distance equal to one-half the width of the module from the edge of the field or whose center point is not on the field, said field boundary vectors being directed from the module in question away from the field edge and perpendicular thereto and having a magnitude of if the center point of the module is still on the board, and said field boundary vectors being directed from the module in question toward the field edge and perpendicular thereto and having a magnitude of if the center of the module is not on the field, q. performing steps (l) and (m), r. calculating for each module a resultant vector from the module''s field boundary vectors, attraction vectors, and overlap vectors, and s. performing step (o).
 10. A process as in claim 1 further comprising the step of reordering the connections of said modules in accordance with predetermined connection rules if the total line length is reduced by such reordering.
 11. A machine process for positioning interconnected modules on a planar field defined by a Cartesian coordinate system having X and Y axes by use of a programmed digital computer having stored in its internal memory a program enabling the computer to perform the following steps: a. designating as a fixed module each module whose center point is to have predetermined X and Y coordinates on the field, b. designating as a fixed X module each module whose center point is to have a predetermined X coordinate on the field, c. designating as a fixed Y module each module whose center point is to have a predetermined Y coordinate on the field, d. designating as a free module each module which may be assigned any position on the field, e. designating each module having a nonlimited length in one dimension as a free bar module if the module may be assigned any position on the field, as a fixed X bar module if the center line along the nonlimited length of the module has a predetermined X coordinate on the field, and as A fixed Y bar module if the center line along the nonlimited length of the module has a predetermined Y-coordinate on the field, f. representing each void on said planar field as a module whose dimensions correspond to the dimensions of the void, g. randomly assigning field coordinates to each free module, randomly assigning a Y field coordinate to each fixed X module, randomly assigning an X field coordinate to each fixed Y module, randomly assigning an X field coordinate to each free bar module extending in the Y direction, and randomly assigning a Y field coordinate to each free bar module extending in the X direction, Y h. calculating an attraction vector for each module of every pair of interconnected modules, said vector being directed from the module in question toward the module to which it is connected, said vector having a magnitude q proportional to (1) the distance separating the two modules and (2) the number of lines connecting the two modules if said pair of modules are free modules and having X and Y components of magnitude x1 and y1 respectively, said vector''s X component having a magnitude of zero if said module in question is a fixed module, a fixed X module, or a fixed X bar module and having a magnitude of 2x1 if said module in question is a fixed module, a fixed Y module, or a free bar module and said other module is a fixed module, a fixed X module or a fixed X bar module, and said vector''s Y component having a magnitude of zero if said module in question is a fixed module, a fixed Y module, or a fixed Y bar module and having a magnitude of 2y1 if said module in question is a free module, a fixed X module, or a free bar module and said other module is a fixed module, a fixed Y module, or a fixed Y bar module, i. deleting from each module pairs of oppositely directed vector components, beginning with the pair having the greatest magnitude in their respective directions and continuing with the pair having the next greatest magnitude, etc. until all such pairs have been deleted, j. calculating a repulsion vector for each module of every pair of unconnected modules, said repulsion vector being directed from the module in question away from the other module of the pair, said vector having a magnitude r inversely proportional to the distance separating the two modules if said pair of modules are free modules and having X and Y components of magnitude x2 and y2 respectively, said repulsion vector''s X component having a magnitude of zero if said module in question is a fixed module, a fixed X module, or a fixed X bar module and having a magnitude of 2x2 if said module in question is a free module, a fixed Y module, or a free bar module and said other module is a fixed module, a fixed X module, or a fixed X bar module, and said repulsion vector''s Y component having a magnitude of zero if said module in question is a fixed module, a fixed Y module, or a fixed Y bar module and having a magnitude of 2y2 if said module in question is a free module, a fixed X module, or a free bar module and said other module is a fixed module, a fixed Y module, or a fixed Y bar module, k. calculating for each module a resultant vector from the module''s attraction vectors and repulsion vectors, and
 12. A process as in claim 11 wherein the magnitude q of said attraction vector equals with negative values being set equal to zero.
 13. A process as in claim 12 wherein each of said modules is moved by an amount equal to
 14. A process as in claim 13 wherein the sequence of steps in said proceSs are iterated not more than a predetermined number of times m.
 15. A process as in claim 14 wherein the steps of said process are performed on nets having n pins, where n is initially set equal to two and then successively incremented by one after each iteration of the process until all nets have been processed.
 16. A process as in claim 15 further comprising the steps of m. calculating the total line length of the interconnections of the modules, n. terminating the process if the average total line length for the past z iterations is within e percentage of the total line length obtained for the most recent iteration, where z and e are predetermined values, o. generating an error indication if the average total line length for the past z iterations is not within e percentage of the total line length obtained for the most recent iteration and either (1) the average total line length for the past z iterations is less than the total line length obtained for the most recent iteration, or (2) the number of iterations completed equals m, and p. repeating steps (h) through (o) if the average total line length for the past z iterations is not within e percentage of and is not less than the total line length obtained for the most recent iteration and if the number of iterations completed is less than m.
 17. A process as in claim 16 further including the steps of q. calculating an attraction vector in accordance with step (h) for each module of every pair of modules which are separated by a distance of more than one-half the sum of the widths of the pair, r. calculating an overlap vector for each module of every pair of modules whose centers are separated by a distance of less than one-half the sum of the widths of the pair, said overlap vector being directed from the module in question away from the other module of the pair, said overlap vector having a magnitude s inversely proportional to the distance separating the pair if said pair of modules are free modules and having X and Y components of magnitude x3 and y3 respectively, said overlap vectors''s X component having a magnitude of zero if said module in question is a fixed module, a fixed X module, or a fixed X bar module and having a magnitude of 2x3 if said module in question is a free module, a fixed Y module, or a free bar module and said other module is a fixed module, a fixed X module, or a fixed X bar module, and said overlap vector''s Y components having a magnitude of zero if said module in question is a fixed module, fixed Y module, or a fixed Y bar module and having a magnitude 2y1 if said module in question is a free module, a fixed X module, or a free bar module and said other module is a fixed module, a fixed Y module or a fixed Y bar module, s. calculating for each module a resultant vector from the modules attraction vectors and overlap vectors, t. performing step (1).
 18. A process as in claim 17 wherein the magnitude s of said overlap vector equals
 19. A process as in claim 18 further comprising the steps of u. calculating a field boundary vector for each module whose center point is within a distance equal to one-half of the width of the module of the edge of the field or whose center point is not on the field, said field boundary vector being directed from the module in question away from the field edge and perpendicular thereto if the center point of the module is on the field and toward the field edge and perpendicular thereto if the center point of the module is not on the field, said field boundary vector having a magnitude t proportional to the distance from the center point of the module to the field edge if the center point is not on the field and if the module is a free module, and having a magnitude u inversely proportioNal to the distance from the center point of the module to the field edge if the center point is still on the field and if the module is a free module, said field boundary vector having X and Y components of magnitude x4 and y4 respectively, said field boundary vector''s X component having a magnitude of zero if the module in question is a fixed module, a fixed X module, or a fixed X bar module and having a magnitude of 2x4 if said module in question is a free module, a fixed Y module, or a free bar module, and said field boundary vector''s Y component having a magnitude of zero if said module in question is a fixed module, a fixed Y module, or a fixed Y bar module and having a magnitude of 2y4 if said module in question is a free module, a fixed X module, or a free bar module, v. performing steps (q) and (r), w. calculating for each module a resultant vector from the module''s field boundary vector, attraction vectors, and overlap vectors, and x. performing step (t).
 20. A process as in claim 19 wherein the magnitude t equals 